package xyz.bali16.application.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xyz.bali16.application.entity.User;
import xyz.bali16.application.entity.UserRole;

import java.util.List;
import java.util.Set;

/**
 * @author bali2 on 20/2/2023.
 * @version 1.0
 */
public interface UserRoleService  extends IService<UserRole> {
    /**
     * 新增映射
     * @param userId 用户id
     * @param roleId 角色id
     */
    void add(String userId, String roleId);

    /**
     * 删除角色与用户的关联
     * @param roleId 角色id
     */
    void removeByRoleId(String roleId);

    /**
     * 删除角色与用户的关联
     * @param userId 用户id
     */
    void removeByUserId(String userId);

    /**
     * 删除角色与用户的关联
     * @param userId 用户id
     * @param roleIds 角色id集合
     */
    void removeByRoleId(String userId, String roleIds);

    /**
     * 通过用户名获取角色关联
     * @param userId 用户id
     * @return List<UserRole>
     */
    List<UserRole> getByUserId(String userId);

    /**
     * 通过角色获取用户关联
     * @param RoleId 角色id
     * @return List<UserRole>
     */
    List<UserRole> getByRoleId(String RoleId);
    /**
     * 通过角色获取相同角色的所有用户
     * @param RoleId 角色id
     * @return List<User>
     */
    List<User> getUsersByRoleId(String RoleId);
}
